// 	2种方式定义一个数组（数组中的元素可以是任意类型）
let arr1 :any[] = [1,'1',true];
let arr2 :[string,number,boolean] = ['1',1,true];
let arr3 : {a:number,b:string,c?:boolean}[] = [
    {
        a:1,
        b:'1'
    },
    {
        a:1,
        b:'1',
        c:true
    }
]
// Ts定义一个求和函数;例Add(2,8,9,6,5,8,7),返回结果45
function Add(a:number,...b:number[]){
    let com :number = 0;
    com += a;
    b.forEach((item:number,index:number)=>{
        com += item
    })
    return com
}
console.log(Add(2,8,9,6,5,8,7));

// Ts定义一个函数返回值为boolean类型的判断函数;例isTrue(nudefined),返回false
function isTrue(con:any){
    if(typeof con == "undefined"){
        return false
    }else{
        return true
    }
} 
console.log(isTrue(undefined));

// 计数： 
// 使用函数编写，实现统计指定字符串中指定字符出现的次数，字符串和要统计的字母作为参数传递。
    // str="acdkjcdeicl"  ;  strCount(str, “c”) 
// 思路：计数器： 遍历每一个字符。判断是否和val全等，如果全等，计数器加一。
let str="acdkjcdeicl";
function strCount(str:string,val:string){
    let count :number = 0;
    let str1 : string[] = str.split('');  // 将对象转换为数组
    str1.forEach((item:string,index:number) => {
        if(item === val){
            count++;
        }
    });
    return count
}
console.log(strCount(str, 'c'));

// 数字（乘5）添加：
// 将arrs中所有的数字乘以5 var arrs = [‘a’,’c’,6,’e’,5,3,’d’]，返回[30,25,15]
var arrs = ['a','c',6,'e',5,3,'d']
function arr(arrs : any[]){
    let arrNum : number[] = [];
    arrs.forEach((item:any,index:number)=>{
        if(typeof item == 'number'){
            arrNum.push(item * 5)
        }
    })
    return arrNum
}
console.log(arr(arrs));

// 补零：
// 写一个函数，将这个数组中所有的一位数前面补0，输出一个新数组，即最后返回。
function fno(arr:number[]){
    let brr :string[] = [];
    arr.map((item:number,index:number)=>{
        let items:string = '0' + item;
        brr.push(items)
    })
    return brr
}
console.log(fno([1,2,3]));

// 找真值：
// 写一个函数bouncer（），实现将数组中的真值，添加到一个新数组中。

function fa(arr:any[]){
    let brr :any[] = [];
    arr.forEach((item:any,index:number)=>{
        // console.log(typeof item);
        console.log(Boolean(item));
        
        if(typeof item != 'boolean' && Boolean(item)){
            brr.push(item)
        }
    })
    return brr
}
console.log(fa([7,'a','',false,9]));




